package com.winning.bdu.dl.service;

import com.winning.bdu.dl.entity.vo.TableDataVo;

import java.util.List;

/**
 * @Author: shipengfei
 * @Description:
 * @Date: 2019-05-27 14:23
 */
public interface IDataBaseService {

    /**
     * 校验表是否存在
     *
     * @param tableName
     * @return
     */
    boolean checkTableIsExists(String tableName);

    /**
     * 创建临时表
     *
     * @param targetTableName
     * @param tempTableName
     * @param indexColumns
     */
    void createTable(String targetTableName, String tempTableName, List<String> indexColumns);

    /**
     * csv数据copy至数据表
     *
     * @param filename
     * @param tableName
     * @param indexColumns
     * @param rowSize
     */
    long copyCsvData2Table(String filename, String tableName, List<String> indexColumns, int rowSize);

    /**
     * 根据临时表更新目标表数据状态
     *
     * @param targetTableName
     * @param tempTableName
     * @param indexColumns
     */
    void updateTargetTableFlag(String targetTableName, String tempTableName, List<String> indexColumns);

    /**
     * copy数据至
     *
     * @param filename
     * @param sql
     * @throws Exception
     */
    void copyTableData2Csv(String filename, String sql) throws Exception;

    /**
     * 通过临时表批量更新目标表
     *
     * @param filename
     * @param tableDataVo
     */
    void batchUpdateTargetTableByTemp(String filename, TableDataVo tableDataVo);
}
